What will be the output of the following code snippet?var x = 10;funct...
The 'var' declaration inside the if block is hoisted to the top of the function scope. However, since the condition is always false, the assignment 'var x = 20' is never executed. The output is 10.
View all questions of this test
What will be the output of the following code snippet?var x = 10;funct...
Explanation:
The output of the code snippet will be 10.
Code Explanation:
1. The variable x is declared and assigned a value of 10.
2. The function foo() is defined, which logs the value of x to the console.
3. Inside the function, there is an if statement with a condition of false.
4. Inside the if statement, a new variable x is declared and assigned a value of 20.
5. Since the condition of the if statement is false, the code inside the if statement is not executed.
6. The function foo() is called, which logs the value of x to the console.
7. As there is no variable x declared inside the function foo(), it uses the variable x declared in the outer scope.
8. Thus, the value of x is 10 and it is logged to the console.
Key Points:
- The variable x is hoisted to the top of the function scope.
- Hoisting is a JavaScript behavior where variable and function declarations are moved to the top of their containing scope before code execution.
- Since the variable x is hoisted, the code inside the if statement is actually interpreted as:
```
var x;
if (false) {
x = 20;
}
```
- As the if statement is never executed, the value of x remains unchanged as 10.
- Therefore, when the function foo() is called, it logs the value of x as 10.